Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


sbapp/kivymd/app.py 0.7.0 (f21569fa) Text, 4.22 KB

T8b949e"""
Themes/Material App
===================

This module contains :class:`MDApp` class that is inherited from
:class:`~kivy.app.App`. :class:`MDApp` has some properties needed for ``KivyMD``
library (like :attr:`~MDApp.theme_cls`). You can turn on the monitor displaying
the current ``FPS`` value in your application:

.. code-block:: python

KV = '''
MDScreen:

MDLabel:
text: "Hello, World!"
halign: "center"
'''

from kivy.lang import Builder

from kivymd.app import MDApp


class MainApp(MDApp):
def build(self):
return Builder.load_string(KV)

def on_start(self):
self.fps_monitor_start()


MainApp().run()

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/fps-monitor.png
:width: 350 px
:align: center

"""

Te6edf3__all__ Tff7b72= Tb4b4b4(Ta5d6ff"Ta5d6ffMDAppTa5d6ff"Tb4b4b4,Tb4b4b4)

Tff7b72import T7ee787os

Tff7b72from T7ee787kivyT7ee787.T7ee787app Tff7b72import Te6edf3App
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787lang Tff7b72import Te6edf3Builder
Tff7b72from T7ee787kivyT7ee787.T7ee787logger Tff7b72import Te6edf3Logger
Tff7b72from T7ee787kivyT7ee787.T7ee787properties Tff7b72import Te6edf3ObjectPropertyTb4b4b4, Te6edf3StringProperty

Tff7b72from T7ee787kivymdT7ee787.T7ee787theming Tff7b72import Te6edf3ThemeManager


Tff7b72class T56d364FpsMonitoringTb4b4b4:
T8b949e"""Implements a monitor to display the current FPS in the toolbar."""

Tff7b72def Td2a8fffps_monitor_startTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3anchorTb4b4b4: Tffa657str Tff7b72= Ta5d6ff"Ta5d6fftopTa5d6ff"Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Adds a monitor to the main application window."""

Tff7b72def Td2a8ffadd_monitorTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72from T7ee787kivyT7ee787.T7ee787coreT7ee787.T7ee787window Tff7b72import Te6edf3Window

Tff7b72from T7ee787kivymdT7ee787.T7ee787utilsT7ee787.T7ee787fpsmonitor Tff7b72import Te6edf3FpsMonitor

Te6edf3monitor Tff7b72= Te6edf3FpsMonitorTb4b4b4(Te6edf3anchorTff7b72=Te6edf3anchorTb4b4b4)
Te6edf3monitorTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Te6edf3WindowTff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3monitorTb4b4b4)

Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3add_monitorTb4b4b4)


Tff7b72class T56d364MDAppTb4b4b4(Te6edf3AppTb4b4b4, Te6edf3FpsMonitoringTb4b4b4)Tb4b4b4:
T8b949e"""
Application class, see :class:`~kivy.app.App` class documentation for more
information.
"""

Te6edf3icon Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffkivymd/images/logo/kivymd-icon-512.pngTa5d6ff"Tb4b4b4)
T8b949e"""
See :attr:`~kivy.app.App.icon` attribute for more information.

.. versionadded:: 1.1.0

:attr:`icon` is an :class:`~kivy.properties.StringProperty`
adn default to `kivymd/images/logo/kivymd-icon-512.png`.
"""

Te6edf3theme_cls Tff7b72= Te6edf3ObjectPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
Instance of :class:`~ThemeManager` class.

.. Warning:: The :attr:`~theme_cls` attribute is already available
in a class that is inherited from the :class:`~MDApp` class.
The following code will result in an error!

.. code-block:: python

class MainApp(MDApp):
theme_cls = ThemeManager()
theme_cls.primary_palette = "Teal"

.. Note:: Correctly do as shown below!

.. code-block:: python

class MainApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Teal"

:attr:`theme_cls` is an :class:`~kivy.properties.ObjectProperty`.
"""

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72selfTff7b72.Td2a8fftheme_cls Tff7b72= Te6edf3ThemeManagerTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffload_all_kv_filesTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3path_to_directoryTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""
Recursively loads KV files from the selected directory.

.. versionadded:: 1.0.0
"""

Tff7b72for Te6edf3path_to_dirTb4b4b4, Te6edf3dirsTb4b4b4, Te6edf3files Tff7b72in Te6edf3osTff7b72.Td2a8ffwalkTb4b4b4(Te6edf3path_to_directoryTb4b4b4)Tb4b4b4:
T8b949e# When using the `load_all_kv_files` method, all KV files
T8b949e# from the `KivyMD` library were loaded twice, which leads to
T8b949e# failures when using application built using `PyInstaller`.
Tff7b72if Ta5d6ff"Ta5d6ffkivymdTa5d6ff" Tff7b72in Te6edf3path_to_directoryTb4b4b4:
Te6edf3LoggerTff7b72.Td2a8ffcriticalTb4b4b4(
Ta5d6ff"Ta5d6ffKivyMD: Ta5d6ff"
Ta5d6ff"Ta5d6ffDo not use the word Ta5d6ff'Ta5d6ffkivymdTa5d6ff'Ta5d6ff in the name of the directory Ta5d6ff"
Ta5d6ff"Ta5d6fffrom where you download KV filesTa5d6ff"
Tb4b4b4)
Tff7b72if Tb4b4b4(
Ta5d6ff"Ta5d6ffvenvTa5d6ff" Tff7b72in Te6edf3path_to_dir
Tff7b72or Ta5d6ff"Ta5d6ff.buildozerTa5d6ff" Tff7b72in Te6edf3path_to_dir
Tff7b72or Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Ta5d6ff"Ta5d6ffkivymdTa5d6ff"Tb4b4b4) Tff7b72in Te6edf3path_to_dir
Tb4b4b4)Tb4b4b4:
Tff7b72continue
Tff7b72for Te6edf3name_file Tff7b72in Te6edf3filesTb4b4b4:
Tff7b72if Tb4b4b4(
Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffsplitextTb4b4b4(Te6edf3name_fileTb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ff.kvTa5d6ff"
Tff7b72and Te6edf3name_file Tff7b72!= Ta5d6ff"Ta5d6ffstyle.kvTa5d6ff" T8b949e# if use PyInstaller
Tff7b72and Ta5d6ff"Ta5d6ff__MACOSTa5d6ff" Tff7b72not Tff7b72in Te6edf3path_to_dir T8b949e# if use Mac OS
Tb4b4b4)Tb4b4b4:
Te6edf3path_to_kv_file Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Te6edf3path_to_dirTb4b4b4, Te6edf3name_fileTb4b4b4)
Te6edf3BuilderTff7b72.Td2a8ffload_fileTb4b4b4(Te6edf3path_to_kv_fileTb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────